package com.fangsheng.netty.nio;

import java.nio.IntBuffer;

/**
 * @创建人: 放生
 * @创建时间: 2022/2/12
 * @描述: nio 中的三大组件之 buffer 演示
 */
public class BasicBuffer {

    public static void main(String[] args) {
        //举例说明Buffer 的使用 (简单说明)
        //创建一个Buffer, 大小为 5, 即可以存放5个int
        IntBuffer intBuffer = IntBuffer.allocate(5);


        //向buffer 存放数据
//        intBuffer.put(10);
//        intBuffer.put(11);
//        intBuffer.put(12);
//        intBuffer.put(13);
//        intBuffer.put(14);
        for(int i = 0; i < intBuffer.capacity(); i++) {
            intBuffer.put( i * 2);
        }

        //如何从buffer读取数据
        //将buffer转换，读写切换(!!!)
        /*
        public final Buffer flip() {
        limit = position; //读数据不能超过5
        position = 0;
        mark = -1;
        return this;
    }
         */
        intBuffer.flip(); //表示反转 用于数据向buffer中输入还是输出的切换，因为上面的步骤是添加元素的position是在后面的。
        intBuffer.position(1);//1,2
        System.out.println(intBuffer.get());//每获取一个下标会往后移动一位
        intBuffer.limit(3);
        while (intBuffer.hasRemaining()) {
            System.out.println(intBuffer.get());
        }
    }


}
